package com.zhala.system.mapper;

import java.util.Date;
import java.util.List;

import com.zhala.system.domain.ZlSteelBigPipe;
import com.zhala.system.domain.ZlSteelPipe;
import com.zhala.system.domain.ZlSteelPlate;
import com.zhala.system.domain.vo.*;
import org.apache.ibatis.annotations.Param;

/**
 * 管节Mapper接口
 * 
 * @author ruoyi
 * @date 2024-11-11
 */
public interface ZlSteelPipeMapper 
{
    /**
     * 查询管节
     * 
     * @param CREATOR 管节主键
     * @return 管节
     */
    public ZlSteelPipe selectZlSteelPipeByCREATOR(String CREATOR);

    /**
     * 查询管节列表
     * 
     * @param zlSteelPipe 管节
     * @return 管节集合
     */
    public List<ZlSteelPipe> selectZlSteelPipeList(ZlSteelPipe zlSteelPipe);

    ZlSteelPipe selectById(String id);

    List<ZlSteelPipe> unUsePipe();

    List<ZlSteelPipe> selectByBigPipeId(String bigPipeId);
    /**
     * 新增管节
     * 
     * @param zlSteelPipe 管节
     * @return 结果
     */
    public int insertZlSteelPipe(ZlSteelPipe zlSteelPipe);

    /**
     * 修改管节
     * 
     * @param zlSteelPipe 管节
     * @return 结果
     */
    public int updateZlSteelPipe(ZlSteelPipe zlSteelPipe);

    /**
     * 删除管节
     * 
     * @param CREATOR 管节主键
     * @return 结果
     */
    public int deleteZlSteelPipeByCREATOR(String CREATOR);

    /**
     * 批量删除管节
     * 
     * @param CREATORs 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteZlSteelPipeByCREATORs(String[] CREATORs);

    int setBigPipeId(@Param("bigPipeId")String bigPipeId,@Param("idList") List<String> idList);

    String getPipeNums(@Param("idList") List<String> idList);

    String getPipeMaterial(@Param("idList") List<String> idList);

    List<ZlSteelPipe> listUsed(@Param("idList") List<String> idList);


    List<PipeMonthStatisticsVO> monthsStatistics(@Param("startDate") Date startDate, @Param("endDate")Date endDate);

    List<PipeStatisticsRespVO> statistics(@Param("monthStart") Date monthStart,@Param("monthEnd") Date monthEnd);

    List<PipePageRespVO> pageList(@Param("monthStart") Date monthStart, @Param("monthEnd") Date monthEnd, @Param("pipeNum") String pipeNum, @Param("source") Integer source);

    StatusStatisticsRespVO statusStatistics(@Param("monthStart") Date monthStart, @Param("monthEnd") Date monthEnd, @Param("pipeNum") String pipeNum);

    PipeCompleteVO pipCompleteStatic();

   Integer qdeStatistics(@Param("monthStart") Date monthStart, @Param("monthEnd") Date monthEnd);

   Integer countByProcedure(@Param("procedure") Integer procedure);

}
